Fluke MET/CAL Procedure ============================================================================= INSTRUMENT: Sub HP 545xx Record Reading IEEE INSTRUMENT: Sub HP 545xx Test For Trigger IEEE DATE: 08-Sep-98 AUTHOR: Fluke REVISION: $Revision: 1.1 $ ADJUSTMENT THRESHOLD: 70% NUMBER OF TESTS: 3 NUMBER OF LINES: 148 ============================================================================= # # Compatibility: # MET/CAL 5.0 or later # # Subprocedures: # None # # Required Files: # None # # REGISTERS USED: # # You will notice that MEM & MEM1 are used extensively in this procedure. # This can be dangerous to use since MEM and MEM1 are used for controlling # instruments. We read the values from MEM and MEM1 and store these in # temporary registers which are later restored on exiting the sub-procedure. # # M[10] # This variable is used in the sub procedure HP54500 STATUS CHECK to set # watchdog timer in the event the oscillscope does not respond to a status # command. # # M[11] # This variable is used to store the value of MEM # # M[12] # This variable is used to store the value of MEM1 # STEP FSC RANGE NOMINAL TOLERANCE MOD1 MOD2 3 4 CON 1.001 JMPT 2.001 Sub HP 545xx Record Reading IEEE 1.002 JMPT 3.001 Sub HP 545xx Test For Trigger IEEE 1.003 DISP Subprocedure not found! 1.004 END 1.005 EVAL dummy # ************************* STABLE_READING ******************************* # Backup MEM and MEM1. 2.001 MATH M[11] = MEM 2.002 MATH M[12] = MEM1 # Reset the watchdog counter 2.003 MATH M[10] = 0 2.004 LABEL RECORD_READING # We will go through this loop 50 times. If there is not a good reading # then we will warn the operator 2.005 MATH M[10] = M[10] + 1 2.006 JMPL UNSTABLE_READING M[10] > 50 2.007 LABEL READING1 2.008 IEEE [D500][MEM2][I] 2.009 MATH M[13] = MEM 2.010 HEAD Channel Reading = [MEM] 2.011 LABEL READING2 2.012 IEEE [D500][MEM2][I] 2.013 HEAD Channel Reading = [MEM] 2.014 MATH M[14] = MEM 2.015 LABEL READING3 2.016 IEEE [D500][MEM2][I] 2.017 HEAD Channel Reading = [MEM] 2.018 MATH M[15] = MEM 2.019 MATH M[18] = MIN (13, 15) 2.020 MATH M[19] = MAX (13, 15) # We picked a value of 5 times the resolution of the # measurement to determine a stable reading. Other # factors like noise or condition of the scope will # have a factor in this. 2.021 MATH M[20] = ABS(M[18] - M[19]) 2.022 MATH MEM1 = M[17] * 5.0 2.023 JMPL RECORD_READING M[20] > M[17] # Take one more reading and use it 2.024 LABEL TAKE_READING 2.025 IEEE [D350][MEM2][I] 2.026 HEAD Channel Reading = [MEM] 2.027 MATH M[11] = AVG(13,15) 2.028 JMPL RESTORE_MEM_AND_MEM1 2.029 LABEL UNSTABLE_READING 2.030 DISP The Scope has encountered an unstable value. 2.030 DISP You may want to check cables and restart. 2.031 IEEE [D350][MEM2][I] 2.032 HEAD Channel Reading = [MEM] 2.033 MATH M[11] = MEM 2.034 LABEL RESTORE_MEM_AND_MEM1 # Restore MEM and MEM1 2.035 MATH MEM = M[11] 2.036 MATH MEM1 = M[12] 2.037 MATH M[20] = 0 2.038 END 2.039 EVAL dummy # ************************* TEST FOR TRIGGER ***************************** 3.001 IEEE *CLS[D500] 3.001 IEEE *STB?[I] # Bit 7: Not used, always zero. # Bit 6: RQS/MSS 3.002 LABEL BIT6 3.003 JMPL BIT5 MEM < 64 3.004 MATH MEM = MEM - 64 # Bit 5: Event Status 3.005 LABEL BIT5 3.006 JMPL BIT4 MEM < 32 3.007 MATH MEM = MEM - 32 # Bit 4: Message Available 3.008 LABEL BIT4 3.009 JMPL BIT3 MEM < 16 3.010 MATH MEM = MEM - 16 # Bit 3: Limit Test 3.011 LABEL BIT3 3.012 JMPL BIT2 MEM < 8 3.013 MATH MEM = MEM - 8 # Bit 2: Displayed Message 3.014 LABEL BIT2 3.015 JMPL BIT1 MEM < 4 3.016 MATH MEM = MEM - 4 # Bit 1: Remote-to-Local Transition 3.017 LABEL BIT1 3.018 JMPL BIT0 MEM < 2 3.019 MATH MEM = MEM - 2 # Bit 0: Trigger State 3.020 LABEL BIT0 3.021 END # ************************* END OF PROCEDURES ***************************